Computing systems are commonly used today. A computing system often uses devices such as adapters, network interface cards, host bus adapters and others to send and receive information from other devices. Different protocols may be used by such devices to communicate, for example, Peripheral Component Interface (PCI), PCI-Express (PCIe) and others. Such devices may be referred to as PCI-Express devices.
PCI-Express Gen 3.0 is a third generation standard that is being used for communication between PCI-Express devices across the same copper channel that was used for PCI-Express Gen 2.0 (i.e. second generation). PCI-Express channels are band-limited and may provide large signal attenuation at higher frequencies (for example, 22 dB at 4 Ghz). The high frequency component of PCI-Express signal gets diminished while passing a band-limited channel. This may result in distortion and bit errors at a receiver of a PCI-Express device.
The PCI Express standard has introduced an equalization process for communicating PCI-Express devices to reduce signal distortion. Typically, two communicating PCI-Express devices (may be referred to as a remote device and a local device) have a transmit segment to send information and a receive segment to receive information. The transmit segment may be called a transmitter and the receive segment may be called a receiver.
Equalization is a process of dynamically adjusting transmitter settings on a local and remote PCI-Express device to obtain stable signal communication. During equalization, a signal is passed through a filter having its frequency response equal to an inverse of frequency response of the communication channel. A high gain is applied at higher frequency to counter signal attenuation. Equalization involves using an adaptive filter with coefficients.
Per the PCI-Express standard, equalization at a transmitter segment of a device is based on multiplying a signal with three different filter coefficients and then adding the multiplied output. The PCI-Express specification defines two parameters, Full Swing (FS) and Low Frequency (LF) to specify transmitter voltage characteristics. FS indicates a maximum differential voltage that is generated by a transmitter, while LF indicates the minimum voltage. The specification also specifies pre-defined set of values for the three coefficients, which are referred to as “Presets”.
Equalization at PCI-Express devices is managed by state machines having a plurality of states. When equalization is requested by a remote PCI-Express device, an equalization state machine at the remote device transitions through a “Recovery.RcvrLock” sub state. During this sub-state, the remote and local PCI-Express devices send training symbols (TS1). Thereafter, state machines at the remote and local PCI-Express devices transition to a next state referred to as “Recovery.RcvrCfg” state, when the local PCI-Express device sends equalization TS2 training symbols with the Preset values. Details of the various states are provided by the PCI-Express specification. The TS1 and TS2 symbols are also defined by the specification.
PCI-Express provides four phases for equalization, referred to herein as Phase 0, 1, 2 and 3. During Phase 0, the remote PCI-Express device transmits TS1 and Preset values to the local PCI-Express device, while maintaining initial TS2 values. During Phase 1, the remote PCI-Express device and local PCI-Express device advertise their FS and LF values and exchange TS1 ordered sets. The local PCI-Express device first transmits TS1 ordered sets using Preset values for equalization. The remote PCI-Express device then transitions into Phase 1 and sends Preset values. After receiving the values, the local PCI-Express device enters Phase 2.
During Phase 2, the remote PCI-Express device assists the local device to fine tune the Preset/Coefficient values. The local PCI-Express device transmits TS1 ordered sets. The Preset/Coefficient values remain the same, until changed by the remote PCI-Express device. In Phase 3, the local PCI-Express device sends Preset/Coefficient values to the remote PCI-Express device to fine tune its equalization settings.
The PCI-Express standard equalization process based on Presets/Coefficients may not be adequate for Gen 3.0 speeds due to signal degradation. Continuous efforts are being made to improve signal quality for complying with Gen 3.0 operational speeds.